package com.study.spark.scala.chapter08

object Scala06_Match {
  def main(args: Array[String]): Unit = {
    // TODO　模糊查询 - 匹配规则
    // 匹配对象 样例类
    val user = getUser()

    user match {
      case User("zhangsan", 10) => println("用户为张三")
      case _ => println("什么也不是")
    }

  }

  // 如果在类的前边加上case关键字，这个类就专门用于模式匹配
  // 在编译时，会生成大量方法
  // 1.样例类会自动实现可序列化接口
  // 2.样例类的构造参数直接作为属性使用，但是不能更改，如果需要，就要用var声明
  // 3.增加和重写了大量方法
  // 4.样例类自动生成伴生对象，而且里边声明了apply和unapply
  case class User(name: String, age: Int)

  def getUser(): User = {
    User("zhangsan", 20)
  }


}
